Next | Prev | Up | Top | Contents | Index

WD93 States and Phases

Some of the SCSI states and phases that can be detected by the wd93 host adapter driver are listed in Table 15-12 for reference, in case they appear in a debugging log message. These states and phases are declared in the /usr/include/sys/wd93.h header file. The comments in the table have been extracted from that file and supplemented with additional information.

"Out" is from the CPU to the SCSI device in these descriptions, and "receive" and "send" are also from the SCSI device point of view, since the target controls all the bus phases except for initial selection.

SCSI State Error Messages
State Message Sense Key Comments
ST_RESET 0x00 SCSI chip reset by reset command or power-up.
ST_SELECT 0x11 Selection of target complete (after C93SELATN).
ST_SATOK 0x16 Select-And-Transfer completed successfully, that is, all phases have completed in a normal manner.
ST_TR_DATAOUT 0x18 Transfer command done, target requesting data.
ST_TR_DATAIN 0x19 Transfer command done, target sending data.
ST_TR_STATIN 0x1b Target is sending status in.
ST_TR_MSGIN 0x1f Transfer command done, target sending message.
ST_TRANPAUSE 0x20 Transfer command has paused with ACK.
ST_SAVEDP 0x21 Save Data Pointers message during SAT normal state when device is disconnecting from the bus.
ST_A_RESELECT 0x27 Reselected after disconnect (93A).
ST_UNEXPDISC 0x41 Device disconnected without sending a disconnect message. This sometimes happens when devices with removable media have had the media removed during a transfer.
ST_PARITY 0x43 Command terminated due to parity error on the SCSI bus.
ST_PARITY_ATN 0x44 Command terminated due to parity error (ATN is asserted so that host can send a message to device; the transfer is just aborted).
ST_TIMEOUT 0x42 Time-out during Select or Reselect, that is, the device never responded to an attempt to select it; normally seen only during hardware inventory probing, but sometimes happens after a SCSI bus reset if device takes a long time to recover from the reset or is powered off.
ST_INCORR_DATA 0x47 Incorrect message or status byte.
ST_UNEX_RDATA 0x48 Unexpected receive data phase device tried to send more data than the SCSI chip is programmed to expect. This can be OK, as when a high-level request is made to transfer more data than the DMA hardware can map on a single request. In this case, simply reprogram the DMA hardware for the next chunk of data and restart the transfer (but don't send a new SCSI command to the device). When printed as part of an error message, it can sometimes be caused by a SCSI cabling problem, or (particularly with devscsi user drivers) by a mismatch in the byte count given to the driver and the byte count implied by the SCSI command sent to the device.
ST_UNEX_SDATA 0x49 Unexpected send-data phase (same as above, but device is asking for more data).
ST_UNEX_CMDPH0x4a Unexpected command phase
ST_UNEX_SSTATUS0x4b Unexpected send status phases occur at the end of SCSI command (that is, byte count remaining is 0); if they happen at other times, the chip interrupts. This can happen when you ask a device for more data than it can give you, and in this case, you just return a short I/O count to the caller. When printed as part of an error message, it usually implies a cabling or termination problem.
ST_UNEX_RMESGOUT0x4e Unexpected request-message-out phase; usually indicates a SCSI cabling problem.
ST_UNEX_SMESGIN 0x4f Unexpected send-message-in phase. Usually indicates a SCSI cabling problem; also happens when device sends an unsolicited disconnect message when preparing to disconnect from the bus.
ST_RESELECT 0x80 WD33C93 has been reselected.
ST_93A_RESEL 0x81 Reselected while idle (93A).
ST_DISCONNECT 0x85 Disconnect has occurred.
ST_NEEDCMD 0x8a Target is ready for a command.
ST_REQ_SMESGOUT 0x8e REQ signal for send message out.
ST_REQ_SMESGIN 0x8f REQ signal for send message in above 3 usually seen only during sync negotiations.


Next | Prev | Up | Top | Contents | Index